#ifndef CONTROLLER_SELL
#define CONTROLLER_SELL

#include <string>
#include <stdexcept>
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <exception>
#include "../../domain.h"
#include "../../interface.h"
#include "../../controller.h"
#include "../../persistence.h"
#include "sell.h"
#include "intf_sell.h"
#include "cmd_sell.h"
#include "../photo/photo.h"
#include "../../interaction.h"


using namespace std;


/**   IMPLEMENTA AS REGRAS DE NEGOCIO E SOLICITA SERVICOS PARA AS CONTROLADORAS DE INTERFACE E PERSISTENCIA.
*/


class ControllerSell : public Controller {



        InterfaceSell * interface;
        cmd_Request * cmd;

    private:
       Interaction * interaction;
       User * userLogged;

    /*TODO:InterfaceSell Sera Criado para ter as funcoes de receber as variaveis de foto*/
    public:

    /**Constantes da controladora de vendas*/
        static const int MIN_OPT = 0;
        static const int MAX_OPT = 3;
        static const int MAX_TOLERANCE = 3;
        static const int OK = 1 ;
        static const int PENDENTE = 0;
        static const int MAX_PRECO_TOTAL = 500;
        static const int MAX_PEDIDOS_PENDENTES = 10;


        ControllerSell(InterfaceSell*,cmd_Request *);
        int execute();
        int cadastrar();
        int alterarStatus();
        int pesquisar();
};




#endif // CONTROLLER
